/**
 * 安卓白金英雄坛制作组
 * <br>
 * 文件名：FlyingScreen.java
 * <br>
 * 创建时间：2014-3-23 下午8:09:47
 * <br>
 * 所属项目：GmudEX
 * <br>
 *
 * @author 12548
 *         <br>
 */
package lostland.gmud.exv2.expand;

import java.util.ArrayList;

import lostland.gmud.exv2.Game;
import lostland.gmud.exv2.Gmud;
import lostland.gmud.exv2.MainCharTile;
import lostland.gmud.exv2.MapScreen;
import lostland.gmud.exv2.data.FlyPoint;
import lostland.gmud.exv2.ui.NotificationScreen;

/**
 * 类名：FlyingScreen
 * <br>
 * 说明：
 *
 * @author 12548
 */
public class FlyingScreen extends GeneralMenuScreen {


	private static ArrayList<String> gets() {
		ArrayList<String> t = new ArrayList<>();
		t.add("★添加当前地点★");

		ArrayList<FlyPoint> p = Game.getInstance().data.fp;
		for (FlyPoint i : p) {
			t.add(Gmud.maps[i.map].getName() + " (" + i.x + "," + i.y + ")");
		}

		return t;
	}

	public FlyingScreen() {
		super(gets(), "请选择你要用轻功前往的地点：");
	}

	/*
	 * （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.ScrollableMenuScreen#onClick(int)
	 */
	@Override
	public void onClick(int i) {
		if (i == 0) {
			if (!MapScreen.getInstance().getMap().extraInfo.FlyDisabled) {
				getGame().data.addfp2(MapScreen.getInstance().getMap().id, MainCharTile.absX(),
						MainCharTile.absY(), MainCharTile.getInstance().currentDirection);
				refresh();
				new NotificationScreen("当前位置添加成功！").pushToGame();
			} else {
				new NotificationScreen("此处无法添加！").pushToGame();
			}
		} else {
			FlyPoint fp = getGame().data.fp.get(i - 1);
			MapScreen.getInstance().jumpTo(fp.map, fp.x, fp.y, fp.d);
			getGame().popToRootScreen();
		}
	}


	/*
	 * （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.ScrollableMenuScreen#onCancel()
	 */
	@Override
	public void onCancel() {
		getGame().popScreen();
	}

	public static void fly() {

		if (Gmud.mc.isHungry()) {
			new NotificationScreen("你浑身使不出一点力气，还是先吃饱了再运功吧！").pushToGame();
		}
		else if (MapScreen.getInstance().getMap().extraInfo.FlyDisabled) {
			new NotificationScreen("你的双腿像灌了铅一样，轻功竟然发动不了！").pushToGame();
		}
		else if (Gmud.mc.skills[7] < 20) {
			new NotificationScreen("你的轻功等级不够！").pushToGame();
		}
		else {
			new FlyingScreen().pushToGame();
		}
	}

}
